package pe.com.ztaxi.taxis.util;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class MapsJsonBing {
	
	private String authenticationResultCode;
	private String statusCode;
	private String statusDescription;	
	private ResourceSets[] resourceSets;
	
	public String getAuthenticationResultCode() {
		return authenticationResultCode;
	}
	public void setAuthenticationResultCode(String authenticationResultCode) {
		this.authenticationResultCode = authenticationResultCode;
	}
	public String getStatusCode() {
		return statusCode;
	}
	public void setStatusCode(String statusCode) {
		this.statusCode = statusCode;
	}
	public String getStatusDescription() {
		return statusDescription;
	}
	public void setStatusDescription(String statusDescription) {
		this.statusDescription = statusDescription;
	}
	public ResourceSets[] getResourceSets() {
		return resourceSets;
	}
	public void setResourceSets(ResourceSets[] resourceSets) {
		this.resourceSets = resourceSets;
	}		
	

	@JsonIgnoreProperties(ignoreUnknown = true)
	public static class ResourceSets {

		private Integer estimatedTotal;
		private Resources[] resources;
		
		public Integer getEstimatedTotal() {
			return estimatedTotal;
		}
		public void setEstimatedTotal(Integer estimatedTotal) {
			this.estimatedTotal = estimatedTotal;
		}
		public Resources[] getResources() {
			return resources;
		}
		public void setResources(Resources[] resources) {
			this.resources = resources;
		}	
	}
	
	@JsonIgnoreProperties(ignoreUnknown = true)
	public static class Resources {
		
		private Address address;
		private GeocodePoints[] geocodePoints;
		
		public Address getAddress() {
			return address;
		}
		public void setAddress(Address address) {
			this.address = address;
		}
		public GeocodePoints[] getGeocodePoints() {
			return geocodePoints;
		}
		public void setGeocodePoints(GeocodePoints[] geocodePoints) {
			this.geocodePoints = geocodePoints;
		}			
	}
		
	
	@JsonIgnoreProperties(ignoreUnknown = true)
	public static class Address{
		
		private String addressLine;
		private String adminDistrict;
		private String adminDistrict2;
		private String countryRegion;
		private String formattedAddress;
		private String locality;
		private String postalCode;
		
		public String getAddressLine() {
			return addressLine;
		}
		public void setAddressLine(String addressLine) {
			this.addressLine = addressLine;
		}
		public String getAdminDistrict() {
			return adminDistrict;
		}
		public void setAdminDistrict(String adminDistrict) {
			this.adminDistrict = adminDistrict;
		}
		public String getAdminDistrict2() {
			return adminDistrict2;
		}
		public void setAdminDistrict2(String adminDistrict2) {
			this.adminDistrict2 = adminDistrict2;
		}
		public String getCountryRegion() {
			return countryRegion;
		}
		public void setCountryRegion(String countryRegion) {
			this.countryRegion = countryRegion;
		}
		public String getFormattedAddress() {
			return formattedAddress;
		}
		public void setFormattedAddress(String formattedAddress) {
			this.formattedAddress = formattedAddress;
		}
		public String getLocality() {
			return locality;
		}
		public void setLocality(String locality) {
			this.locality = locality;
		}
		public String getPostalCode() {
			return postalCode;
		}
		public void setPostalCode(String postalCode) {
			this.postalCode = postalCode;
		}
	}
	
	@JsonIgnoreProperties(ignoreUnknown = true)
	public static class GeocodePoints {
		
		private String type;
		private String[] coordinates;
		private String calculationMethod;
		private String[] usageTypes;
		
		public String getType() {
			return type;
		}
		public void setType(String type) {
			this.type = type;
		}
		public String[] getCoordinates() {
			return coordinates;
		}
		public void setCoordinates(String[] coordinates) {
			this.coordinates = coordinates;
		}
		public String getCalculationMethod() {
			return calculationMethod;
		}
		public void setCalculationMethod(String calculationMethod) {
			this.calculationMethod = calculationMethod;
		}
		public String[] getUsageTypes() {
			return usageTypes;
		}
		public void setUsageTypes(String[] usageTypes) {
			this.usageTypes = usageTypes;
		}		
	}
}
